package com.zhq.spring;

import java.lang.annotation.*;

/***
 * 注解里面定义的是：注解类型元素
 * 1、访问修饰符必须为public，不写默认为public
 */

/** @Target注解，是专门用来限定某个自定义注解能够被应用在那些JAVA元素上面的
 * 它使用一个枚举类型定义如下：（只列出常见的两个）
 * TYPE（类、接口（包括注解类型））
 * METHOD (表示用于方法上)
 * @Retention用来修饰自定义注解的生命力。注解的生命周期有三个阶段1、Java源文件阶段；2、编译到class文件阶段；3、运行期阶段。
 * 同样使用了RetentionPolicy枚举类型定义了三个阶段：
 * SOURCE
 * CLASS
 * RUNTIME(一般都是用这个)
 *  ***/


@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.TYPE})
public @interface ComponentScan {
    String path() default  "";
}
